import axios from 'axios';

// 配置axios默认设置
axios.defaults.timeout = 10000;
axios.defaults.baseURL = "https://liu.zzgoodqc.cn";

// 添加请求拦截器 - 自动添加token
axios.interceptors.request.use(config => {
  const token = sessionStorage.getItem('token');
  if (token) {
    config.headers = config.headers || {};
    config.headers.Authorization = `Bearer ${token}`;
  }
  return config;
});

// 添加响应拦截器 - 统一处理响应
axios.interceptors.response.use(
  response => response.data,
  error => {
    console.error('API Error:', error.message);
    return Promise.reject(error.response?.data || { message: 'Network Error' });
  }
);

/**
 * 封装GET请求（自动携带token）
 * @param url 请求地址
 * @param params 查询参数
 * @returns Promise
 */
export function apiGet(url: string, params = {}) {
  return axios.get(url, { params });
}

/**
 * 封装GET请求（不携带token）
 * @param url 请求地址
 * @param params 查询参数
 * @returns Promise
 */
export function apiGetNoheader(url: string, params = {}) {
  return axios.get(url, { 
    params,
    headers: { Authorization: '' } // 清除授权头
  });
}

/**
 * 封装POST请求（自动携带token）
 * @param url 请求地址
 * @param data 请求体数据
 * @returns Promise
 */
export function apiPost(url: string, data = {}) {
  return axios.post(url, data);
}

/**
 * 封装PUT请求（自动携带token）
 * @param url 请求地址
 * @param data 请求体数据
 * @returns Promise
 */
export function apiPut(url: string, data = {}) {
  return axios.put(url, data);
}

/**
 * 封装DELETE请求（自动携带token）
 * @param url 请求地址
 * @param params 查询参数
 * @returns Promise
 */
export function apiDelete(url: string, params = {}) {
  return axios.delete(url, { params });
}